Skip to content

fix(metal): scope MLX AppleClang warning suppression - #30

Merged
mudler merged 1 commit into
mudler:mainfrom
localai-org-maint-bot:bot/fix-mlx-appleclang-header-warning
Aug 4, 2026
Merged

fix(metal): scope MLX AppleClang warning suppression#30
mudler merged 1 commit into
mudler:mainfrom
localai-org-maint-bot:bot/fix-mlx-appleclang-header-warning

Conversation

@localai-org-maint-bot

Copy link
Copy Markdown
Contributor

Summary

  • retain the imported MLX target and its SYSTEM include boundary
  • scope AppleClang -Wgnu-folding-constant suppression to the MLX public includes
  • require both protections in the MLX header regression test
  • record the build-only, benchmark-not-applicable disposition

Verification

  • python3 tests/scripts/test_mlx_system_headers.py (4 tests, 2 skipped because this Linux host has no CMake/Clang)
  • python3 tests/scripts/test_compiler_pragma_boundaries.py
  • python3 scripts/check-doc-checkpoint.py --staged
  • python3 tests/scripts/test_doc_checkpoint.py
  • python3 scripts/check-agent-record.py
  • python3 tests/scripts/test_agent_record.py
  • git diff --cached --check

The binding AppleClang/MLX build remains the Darwin CI gate.

Keep MLX headers behind the imported SYSTEM dependency boundary and also suppress -Wgnu-folding-constant only while parsing the MLX public includes. Extend the regression guard to require both protections.

FOLLOWING_AGENTS_PROTOCOL

Assisted-by: Codex:gpt-5 [systematic-debugging] [test-driven-development]
@mudler
mudler merged commit a8e4e88 into mudler:main Aug 4, 2026
7 of 8 checks passed
mudler added a commit that referenced this pull request Aug 6, 2026
…ineage REFUTED, gap is engine context not codegen

#75 owed obtaining vLLM's wheel ptxas (hypothesized older CUDA 12.x lineage) and
A/B'ing it. Done. The lineage hypothesis dies three ways:

(a) cuobjdump of vLLM 0.25.0 _vllm_fa2_C.abi3.so = 52 sm_80 cubins + 52 PTX
    .version 9.0 (= CUDA 13.0, our own major), NO sm_12x cubin. On GB10 the sm_80
    SASS can't run, so vLLM's flash SASS is DRIVER-JIT'd from compute_80 PTX by the
    box CUDA-13.0 driver — the same assembler #75's Build C already used. There is
    no older-CUDA-12.x wheel ptxas anywhere in vLLM's path.
(b) ptxas 12.8 (the only sub-13 ptxas on the box) tops out at sm_120a and cannot
    target sm_121a or read PTX 9.0 — an old-12.x sm_121a cubin is impossible.
(c) same-params cuModule A/B: the byte-identical c8 decode kernel from our
    compute_80+fast-math PTX and vLLM's own PTX #30, via driver-JIT / ptxas 13.0 /
    ptxas 13.2 (all REG=241), ties at ~144us (module/native ratios 0.969-1.013,
    a +-1.3% tie; the lone 0.969 is box-drift, contradicted by its sisters).

Corrected mechanism: flash-kernel CODEGEN is at PARITY across every reachable
toolchain AND vs vLLM's own PTX; the +10us/call the engine showed (167 vs 157) is
ENGINE CONTEXT (neighbour L2/orchestration, per #69), NOT ptxas. Retires #75's
"ptxas SASS-scheduling quality" attribution.

No vendor (nothing beat the driver JIT we already use). Binding UNCHANGED c1 1.020
/ c2 0.962 / c4 0.966 / c8 0.969; MXFP4 TERMINAL below-floor at c2-c8. hd256
(27B/35B) projection: same structure (sm_80-only PTX driver-JIT'd), no hd256
vendor owed. No functional code shipped; CMakeLists NOTE + benchmark-record (#82)
+ spec CLOSED record the closed levers.

FOLLOWING_AGENTS_PROTOCOL
Assisted-by: Claude Code:claude-opus-4-8 [ClaudeCode]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants